home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / pctchnqs / 1992 / number2 / rtc.h < prev    next >
C/C++ Source or Header  |  1992-04-16  |  3KB  |  58 lines

  1. /* RTC.H -- Symbols and function prototypes for RTCHDW.C */
  2.  
  3. #define PIC1data 0x20                   /* PIC 1 data register */
  4. #define PIC1ctrl 0x21                /* PIC 1 control register */
  5. #define PIC2data 0xa0                   /* PIC 2 data register */
  6. #define PIC2ctrl 0xa1                /* PIC 2 control register */
  7. #define EOI  0x20                  /* "End of Interrupt" value */
  8. #define ALARMINT 0x4A           /* User Alarm Interrupt number */
  9. #define RTCINT 0x70                           /* RTC interrupt */
  10. #define CMOS_Control 0x70             /* CMOS RAM control port */
  11. #define CMOS_Data 0x71                   /* CMOS RAM data port */
  12. #define SRA 0x0a                          /* Status Register A */
  13. #define SRB 0x0b                          /* Status Register B */
  14. #define SRC 0x0c                          /* Status Register C */
  15. #define SRD 0x0d                          /* Status Register D */
  16.  
  17. /* Status Register A flag masks */
  18. #define UIP 0x80                         /* Update in Progress */
  19.  
  20. /* Status Register B flag masks */
  21. #define SET     0x80                       /* Halt update flag */
  22. #define PIE     0x40              /* Periodic Interrupt Enable */
  23. #define AIE     0x20                 /* Alarm Interrupt Enable */
  24. #define UIE     0x10          /* Update-ended Interrupt Enable */
  25. #define SQWE    0x08                     /* Square Wave Enable */
  26. #define DM      0x04                              /* Data Mode */
  27. #define AMPM    0x02                           /* 24/12 Switch */
  28. #define DSE     0x01                /* Daylight Savings Enable */
  29.  
  30. /* Status Register C flag masks */
  31. #define IRQF    0x80                      /* Interrupt Request */
  32. #define PF      0x40                     /* Periodic Interrupt */
  33. #define AF      0x20                        /* Alarm Interrupt */
  34. #define UF      0x10                 /* Update-ended Interrupt */
  35.  
  36. /* Status Register D flag masks */
  37. #define VRT     0x80                       /* Valid RAM & Time */
  38.  
  39. /* Time structure used by SetAlarmInt */
  40. struct RTCTIME {
  41.     unsigned int Hour;
  42.     unsigned int Min;
  43.     unsigned int Sec;
  44.     unsigned int Daylight;
  45. };
  46.  
  47. int ReadCMOS (int Addr);
  48. void WriteCMOS (int Loc, int Data);
  49. void NewCMOSChecksum (void);
  50. int SetPeriodicInt (int Freq, void far (*isr)());
  51. int SetUpdateInt (void far (*isr)());
  52. int SetAlarmInt (struct RTCTIME *Time, void far (*isr)());
  53. void EnableRTCint (int Which);
  54. void DisableRTCint (int Which);
  55. void ResetRTCint (int Which);
  56. void TimerOn (void);
  57. void TimerOff (void);
  58.